package cn.lzm.fault.retry;

import cn.lzm.utils.SpiLoader;

/**
 * @author lzm
 * @Date 2024/11/8
 * @description
 */
public class RetryStrategyFactory {

    /**
     * 默认重试策略
     */
    public static final RetryStrategy DEFAULT_RETRY_STRATEGY = new NoRetryStrategy();

    static {
        SpiLoader.load(RetryStrategy.class);
    }

    /**
     * 获取实例
     *
     * @param key 键名
     * @return 重试策略
     */
    public static RetryStrategy getInstance(String key) {
        return SpiLoader.getInstance(RetryStrategy.class, key);
    }
}
